Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Перемножувач на константу

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Інші
Група:
СКС

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт з лабораторної роботи №1 на тему: „Перемножувач на константу” Підготував: ст. гр. СКС-12 Цигилик Л. О. Прийняла: Ногаль М. В. Львів 2007 Мета роботи: оволодіти швидким алгоритмом множення на константу, та реалізувати програму в пакеті A-VHDL. Завдання: перемножити два 16-ти розрядних числа, одне з яких константа і рівне, згідно варіанту – 5F92 . Алгоритм множення: множення відбувається за допомогою логічного зсуву вхідного операнда. Число 5F9216 рівне − 0101 1111 1001 0010 2 , підрахуємо кількість одиничок, їх 9 , отже наш вхідний операнд повинен бути зсунутий 9 раз, і результат після кожного зсуву повинен додаватися. Зсув відбувається в 32 – х розрядній сітці. Наш операнд розміщується в 16 мол. розрядах, і кожен зсув виконується на стільки розрядів, на якій позиції стоїть «1» в константі, починаючи з молодших розрядів. Далі виконуємо суму проміжних 32 – х розрядних результатів (їх є 9), результат суми і буде наше перемножене число. Програмна реалізація: library IEEE; use IEEE.STD_LOGIC_1164.all; use IEEE.STD_LOGIC_unsigned.all; entity mult is port( A : in std_logic_vector(15 downto 0); B : out std_logic_vector(31 downto 0) ); end mult; -- constant 5f92 architecture mult of mult is signal a1, a2, a3, a4, a5, a6, a7, a8, a9: std_logic_vector(31 downto 0); begin a1 <= "000000000000000" & A & '0'; a2 <= "000000000000" & A & "0000"; a3 <= "000000000" & A & "0000000"; a4 <= "00000000" & A & "00000000"; a5 <= "0000000" & A & "000000000"; a6 <= "000000" & A & "0000000000"; a7 <= "00000" & A & "00000000000"; a8 <= "0000" & A & "000000000000"; a9 <= "00" & A & "00000000000000"; B <= a1+a2+a3+a4+a5+a6+a7+a8+a9; end mult; Діаграма симуляції: Висновок: з даної лабораторної роботи я оволодів методом множення числа на константу.
Антиботан аватар за замовчуванням

13.02.2013 14:02

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини